home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / NEWSOFT / AUGUST / WORKDISC / !Forthmacs / risc_os / bin / cmd / EmacsRC < prev    next >
Text File  |  1997-03-17  |  7KB  |  305 lines

  1. ;    EMACS.RC:    Standard micro Startup program
  2. ;            for MicroEMACS 3.9d and above
  3. ;            (C)opyright 1987 by Daniel M Lawrence
  4. ;            Last Update: 10/20/87
  5.  
  6. set $discmd FALSE
  7. write-message "[Setting up....]"
  8.  
  9. ; If you screen "SNOWS", comment this line
  10. ;    set $flicker "FALSE"
  11.  
  12. ; To use an IBM-PC EGA card, uncomment the following line
  13. ;    set $sres "EGA"
  14.  
  15. ;    ***** Rebind the Function key group
  16.  
  17. bind-to-key search-forward        FN1
  18. bind-to-key search-reverse        FN2
  19. bind-to-key hunt-forward        FN3
  20. bind-to-key hunt-backward        FN4
  21. bind-to-key execute-macro-1        FN5
  22. bind-to-key execute-macro-2        FN6
  23. bind-to-key next-window            FN7
  24. bind-to-key execute-macro-3        FN8
  25. bind-to-key save-file            FN9
  26. bind-to-key exit-emacs            FN0
  27.  
  28. bind-to-key execute-macro-10        S-FN1
  29. bind-to-key execute-macro-11        S-FN2
  30. bind-to-key execute-macro-12        S-FN3
  31. bind-to-key execute-macro-13        S-FN4
  32. bind-to-key execute-macro-14        S-FN5
  33. bind-to-key execute-macro-15        S-FN6
  34. bind-to-key execute-macro-16        S-FN7
  35. bind-to-key execute-macro-17        S-FN8
  36. bind-to-key execute-macro-18        S-FN9
  37. bind-to-key execute-macro-19        S-FN0
  38.  
  39. bind-to-key beginning-of-file        FN^P  ; Ctl-Up
  40. bind-to-key end-of-file            FN^N  ; Ctl-Down
  41. bind-to-key beginning-of-line        FN^B  ; Ctl-Left
  42. bind-to-key end-of-line            FN^F  ; Ctl-Right
  43.  
  44. bind-to-key move-window-up        S-FN^P
  45. bind-to-key move-window-down        S-FN^N
  46.  
  47. bind-to-key previous-page        S-FNP ; Shift-Up
  48. bind-to-key next-page            S-FNN ; Shift-Down
  49. bind-to-key previous-word        S-FNB ; Shift-Left
  50. bind-to-key next-word            S-FNF ; Shift-Right
  51.  
  52. bind-to-key execute-macro-22        FN^>  ; Ctl-Copy: Delete line
  53. bind-to-key execute-macro-23        FNC   ; Insert: Swap insert<>overtype
  54.  
  55. bind-to-key delete-next-character    FN>   ; Copy
  56. bind-to-key delete-next-character    ^?   ; Delete
  57.  
  58. bind-to-key scroll-next-up        A-FNZ ; Alt-Page Up
  59. bind-to-key scroll-next-down        A-FNV ; Alt-Page Down
  60.  
  61. bind-to-key execute-named-command    A-X
  62. bind-to-key apropos            A-A
  63.  
  64. ;    Set Default Global modes
  65.  
  66. add-global-mode "white"
  67. add-global-mode "BLACK"
  68.  
  69. ;    Toggle function key window display
  70. 1    store-macro
  71.     !if %rcfkeys
  72.         !goto rcfoff
  73.     !endif
  74.  
  75. ;    toggle function key window on
  76.     save-window
  77.     1 next-window
  78.     !if &sequal $cbufname "EmacsHLP"
  79.         delete-window
  80.     !endif
  81.     !if ¬ &sequal $cbufname "Function Keys"
  82.         1 split-current-window
  83.         1 select-buffer "Function Keys"
  84.         add-mode "red"
  85.         add-mode "WHITE"
  86.         !force 5 resize-window
  87.         1 goto-line
  88.     !endif
  89.     set %rcfkeys TRUE
  90.     !force restore-window
  91.     !if &sequal $cbufname "Function Keys"
  92.         next-window
  93.     !endif
  94.     write-message "[Function key window ON]"
  95.     !return
  96.  
  97.     ;Toggle the function key window off
  98. *rcfoff
  99.     save-window
  100.     1 next-window
  101.     !if &sequal "Function Keys" $cbufname
  102.         delete-window
  103.     !endif
  104.     !force restore-window
  105.     write-message "[Function key window OFF]"
  106.     set %rcfkeys FALSE
  107. !endm
  108.  
  109.  
  110.  
  111. ;    Toggle HELP file onscreen
  112. 2 store-macro
  113.     1 next-window
  114.  
  115.     ;Make sure the function key window isn't up!
  116.     !if &sequal $cbufname "Function Keys"
  117.         delete-window
  118.     !endif
  119.     set %rcfkeys FALSE
  120.  
  121.     ;Bring up page 1
  122.     !if ¬ &seq $cbufname "EmacsHLP"
  123.         help
  124.         8 resize-window
  125.         add-mode "red"
  126.         add-mode "WHITE"
  127.         beginning-of-file
  128.         2 forward-character
  129.     !endif
  130. *rchelp
  131.     write-message "[PgUp/PgDn] Page    [FN6] EXIT     ^G  Exit leaving page on screen"
  132.     update-screen
  133.     set %rctmp >cmd
  134.     !if &seq %rctmp FNZ
  135.         beginning-of-line
  136.         !force search-reverse "=>"
  137.         1 redraw-display
  138.         !goto rchelp
  139.     !endif
  140.     !if &seq %rctmp FNV
  141.         beginning-of-line
  142.         2 forward-character
  143.         !force search-forward "=>"
  144.         1 redraw-display
  145.         !goto rchelp
  146.     !endif
  147.     !if &seq %rctmp FN6
  148.         delete-window
  149.         !if &seq %rcfkeys TRUE
  150.             set %rcfkeys FALSE
  151.             execute-macro-1
  152.         !endif
  153.         write-message "[Help Exited]"
  154.         !return
  155.     !endif
  156.     !if &seq %rctmp ^G
  157.         next-window
  158.         set %rcfkeys FALSE
  159.         write-message "[Help Aborted]"
  160.         !return
  161.     !endif
  162.     !goto rchelp
  163. !endm
  164.  
  165.  
  166. ;    Load a new page
  167. 3    store-macro
  168.     !if &seq &find newpage ""
  169.         write-message "[Cannot find NEWPAGE]"
  170.         !return
  171.     !endif
  172.     execute-file newpage
  173. !endm
  174.  
  175. ;procedure to clean out the current page (which is nothing right now)
  176. store-procedure    clean
  177.     ; nothing by default
  178. !endm
  179.  
  180. ;    Set up auto CMODE
  181. 20    store-macro
  182.     set %rctmp  &length $cfname
  183.     !while &greater %rctmp 0
  184.         !if &seq  "."  &mid $cfname %rctmp 1
  185.             !break
  186.         !endif
  187.         set %rctmp  &sub %rctmp 1
  188.     !endwhile
  189.  
  190. ;    No directory at all...
  191.     !if &less %rctmp 2
  192.         !return
  193.     !endif
  194.  
  195.     !if &equ %rctmp 2
  196. ;        Dir must be "c" or "h"
  197.         set %rctmp &lower &left $cfname 1
  198.  
  199.         !if &or  &seq "c" %rctmp  &seq "h" %rctmp
  200.             add-mode "cmode"
  201.         !endif
  202.     !else
  203. ;        Char befor dir must be "." or ":"
  204.         !if ¬ &sin   ".:"   &mid $cfname  &sub %rctmp 2  1
  205.             !return
  206.         !endif
  207.  
  208. ;        Dir must be "c" or "h"
  209.         !if ¬ &sin   "cChH"   &mid $cfname  &sub %rctmp 1  1
  210.             !return
  211.         !endif
  212.  
  213.         add-mode "cmode"
  214.     !endif
  215.  
  216. !endm
  217. set $readhook execute-macro-20
  218.  
  219. ;    This function activates the function key window as
  220. ;    a legitimate place to call up function keys
  221. 21    store-macro
  222.  
  223.     ;remember where we started, and do the mouse movement
  224.     save-window
  225.     mouse-move-down
  226.  
  227.     ;If not in the function key window... leave
  228.     !if ¬ &sequal $cbufname "Function Keys"
  229.         !return
  230.     !endif
  231.  
  232.     ;Find out what function key were gonna do
  233.     add-mode magic
  234.     2 forward-character
  235.     set %rctmp $search
  236.     !force search-reverse "[fF][0-9]"
  237.     !if &seq $status FALSE
  238.         delete-mode magic
  239.         set $search %rctmp
  240.         !return
  241.     !endif
  242.  
  243.     ;we are on the "f" or "F".  Get the function key type and number now
  244.     set $search %rctmp
  245.     set %fcase lower
  246.     !if &equ $curchar 70
  247.         set %fcase upper
  248.     !endif
  249.     1 forward-character
  250.     set %fnum &chr $curchar
  251.     1 forward-character
  252.     set %fnum &cat %fnum &chr $curchar
  253.     set %fnum &add %fnum 0
  254.     !if &equ %fnum 10
  255.         set %fnum "0"
  256.     !endif
  257.     set %fname &cat "FN" %fnum
  258.     !if &seq %fcase upper
  259.         set %fname &cat "S-" %fname
  260.     !endif
  261.  
  262.     ;save the function
  263.     set %rccmd &bind %fname
  264.     delete-mode MAGIC
  265.  
  266.     ;swallow the up-button
  267.     set %rctmp >c
  268.  
  269.     ;restore the window and exit
  270.     restore-window
  271.  
  272.     ;and then execute it
  273.     execute-named-command &ind %rccmd
  274. !endm    
  275. bind-to-key execute-macro-21 MSa
  276.  
  277. ;    Delete a line
  278. 22    store-macro
  279.     !if &greater $curcol 0
  280.         beginning-of-line
  281.     !endif
  282.     !force 1 kill-to-end-of-line
  283. !endm
  284.  
  285. ;    Swap insert<>overtype
  286. 23    store-macro
  287.     set $cmode &bxor $cmode 32
  288. !endm
  289.  
  290. ;    bring up the function key window
  291.  
  292.     1 split-current-window
  293.     1 select-buffer "Function Keys"
  294.     insert-string "f1 search-> f2 <-search |    MicroEMACS:  Text Editor~n"
  295.     insert-string "f3 hunt->   f4 <-hunt   | ~n"
  296.     insert-string "f5 fkeys    f6 help     |  Available function key Pages include:~n"
  297.     insert-string "f7 nxt wind f8 pg[    ] |   FORTH WORD BOX EMACS PASCAL C COBOL ~n"
  298.     insert-string "f9 save     f10 exit    |     [use the f8 key to load Pages]    ~n"
  299.     unmark-buffer
  300.     delete-window
  301.     set %rcfkeys TRUE
  302.     execute-macro-1
  303.     set $discmd TRUE
  304.  
  305. execute-macro-1